package com.yueyang.sojourn.server.common.baymax.web.resolver.spi;

import com.yueyang.sojourn.server.common.baymax.web.resolver.RestResponseMessage;

/**
 * 客户端响应消息的提供者，客户端可以自定义实现，SPI实现者必须提供默认构造函数，因为我们使用</br>
 * ServiceLoader加载所有插件。
 */
public interface RestResponseMessageProvider {
  /**
   * 是否支持此来源，如果source可以解析出RestResult，则返回true
   * @param source nerver null
   * @author huisman
   */
  boolean support(Exception source);

  /**
   * 生成一个RestResult，包括code和message
   * @param source nerver null
   * @author huisman
   */
  RestResponseMessage produce(Exception source);
}
